import complex_query from '@dfeidao/atom-nodejs/db/complex-query';
import query from '@dfeidao/atom-nodejs/db/query';
import log from '@dfeidao/atom-nodejs/logger/log';
import { IncomingHttpHeaders } from 'http';
import { productid, systemid } from '../../atom/config';

interface Message {
	// cookie: {
	// 	uk: string;
	// 	[key: string]: string
	// };
	// urls: {
	// 	base: string;
	// 	origin: string;
	// 	url: string;
	// };
	// query: {};
	// params: {};
	// headers: {};
	// captcha: string;
}

interface IWebResult {
	data: unknown;
	cookie?: {
		[name: string]: string;
	} | null;
	content_type?: string;
	headers?: {
		[key: string]: string;
	};
	attachment?: string;
	redirect?: string;
	status_code?: number;
}
/* 表名	enterprise
标题	企业
字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
_id	id	string	50	ⅹ	√
company_no	企业编号	string	32	√	ⅹ
business_address	企业地址	string	50	√	ⅹ
company_name	企业名称	string	50	√	ⅹ
corporate	企业法人	string	50	√	ⅹ
high_company_name	上级企业名称	string	32	√	ⅹ
nrollment_registration	工商注册号	string	50	√	ⅹ
company_unity_code	企业统一信用代码	string	50	√	ⅹ
org_code	组织机构代码	string	50	√	ⅹ
contacts_tel_one	法人联系电话	string	50	√	ⅹ
contacts_tel_two	企业联系电话	string	50	√	ⅹ
contact	联系人	string	50	√	ⅹ
productid	产品ID	string	50	√	ⅹ
 */
export default async function atom(message: Message, action_id: string, session_id: string, headers: IncomingHttpHeaders): Promise<IWebResult> {
	log('Service begin path:f:\实习\kh\src\wyf-hManager\zj-000007\s001,action_id:' + action_id);

	// 查询企业表数据
	const { prepare: p, exec } = query(action_id, session_id, systemid);

	p('enterprise', ['company_name', 'company_no'], { productid }, 200, 1, [], []);

	const [res] = await exec();

	// 查询状态管理表数据
	const q = complex_query(action_id, session_id, systemid);

	const d = await q.add_field('basic_data', 'value_no', 'value_no').add_field('property_optional_values', 'optional_value', 'optional_value').where_eq('basic_data', 'value_name', 'status_manage').inner_join('basic_data', 'property_optional_values', ['value_no', 'value_no']).exec();


	log('Service end path:f:\实习\kh\src\wyf-hManager\zj-000007\s001,action_id:' + action_id);
	return {
		data: { res, d }
	};
}
